/**数据更新
 * @author wangze
 * @date 2018-01-08 9:17.
 **/
(function () {
    var _bt = window.BT,
        _util = _bt.util,
        _debug = _util.debug,
        _dialog = _util.dialog,
        _config = _util.config,
        _enum = _config.enumValues,
        _url = _config.url,
        _uUrl = _config.url.user,
        _dataUpdateUrl = _url.dataUpdate;

    var gridOpt = {
        url: _dataUpdateUrl.list,
        formatters: {
            'detailFormatter': function (column, row) {
                return '<button class="btn btn-xs btn-purple command-detail" data-row-id="' + row.id + '">报错详情</button>';
            },
            'commandFormatter': function (column, row) {
                return '<button class="btn btn-xs btn-purple command-edit" data-row-id="' + row.id + '">处理</button>';
            }
        }
    };
    var page = {
        grid: null,
        init: function () {
            page.grid = new _bt.BGrid(gridOpt);
            page.update.init();
            //page.edit.init();
            page.bind();
        },
        resetForm: function (form, v) {
            if (v) {
                v.resetForm();
            }
            form[0].reset();
            $('[type=hidden]', form).val('');
            $('.form-group', form).each(function () {
                var $me = $(this);
                $me.removeClass('has-error');
                $('.help-block', $me).remove();
            });
        }
    };
    /**
     * 处理报错
     */
    page.update = {
        id: '#my-update-modal',
        form: '#form-update',
        init: function () {
            var $form = $(page.update.form);

            $(page.update.id).on('hidden.bs.modal', function () {
                page.resetForm($form);
            });

            //更新
            $('#my-modal-btn-update', page.update.id).on('click', function () {
                var self=$(this);
                self.prop('disabled',true);
                var successEvent = function (data) {
                    self.prop('disabled',false);
                    if (data && data.flag) {
                        _dialog.info('更新成功');
                        $(page.update.id).modal('hide');
                        page.grid.load();
                    } else {
                        _dialog.warn('更新失败');
                    }
                };
                _util.ajax({
                    url: _dataUpdateUrl.handle,
                    type: 'get',
                    data: {idStr: $('[name=id]', page.update.id).val()}
                }, successEvent);

            });
        },
        show: function (id) {
            var successEvent = function (data) {
                if (data && data.flag) {
                    var $form = $(page.update.form);
                    data = data.data;
                    $form.bindForm(data);
                    $(page.update.id).modal('show');
                } else {
                    _dialog.warn('获取数据失败，请重新尝试');
                }
            };
            _util.ajax({
                url: _dataUpdateUrl.data,
                type: 'get',
                data: {id: id}
            }, successEvent);
        }
    };


    /**
     *报错详情
     */
    page.detail = {
        id: '#my-detail-modal',
        grid: null,
        init: function () {
            $(page.detail.id).on('hidden.bs.modal', function () {
                page.detail.grid && page.detail.grid.destroy();
            });
        },
        show: function (id) {
            var gridOpt = {
                url: _dataUpdateUrl.detail,
                id: '#grid-detail',
                post: function () {
                    return {jobId: id};
                }
            };
            page.detail.grid = new _bt.BGrid(gridOpt);
            $(page.detail.id).modal('show');
        }
    };

    page.bind = function () {
        var searchEvent = function () {
            page.grid.reload();
        };

        var updateEvent = function (c) {
            //选择数据
            var ids = page.grid.getSelections();

            if (ids.length === 0) {
                _dialog.warn('请选择一条数据');
                return;
            }
            _util.ajax({
                type: 'get',
                url: _dataUpdateUrl.handle,
                data: {idStr: ids.join(',')}
            }, function (data) {
                if (data && data.flag) {
                    _dialog.info('更新成功');
                    c();
                    page.grid.reload();
                } else {
                    _dialog.warn('更新失败');
                }
            });

        };

        $('#btn-search').on('click', searchEvent);

        /**
         * 批量更新
         */
        $('#btn-batch-update').on('click', function () {
            _dialog.customConfirm('', {
                btn: ['批量更新', '批量忽略'],
                title: '数据批量处理'
            }, function (index) {
                updateEvent(function () {
                    _dialog.close(index);
                });
            });
        });
        /**
         * 绑定grid上的编辑事件
         */
        page.grid.on('loaded', function () {
            $('.command-edit').on('click', function () {
                var id = $(this).attr('data-row-id');
                page.update.show(id);
                return false;
            });

        });
        /**
         * 事件详情
         */
        page.grid.on('loaded', function () {
            $('.command-detail').on('click', function () {
                var id = $(this).attr('data-row-id');
                page.detail.show(id);
                return false;
            });

        });
    };

    $(function () {
        page.init();
    });

})();